package org.jeecg.modules.categories.mapper;

import org.jeecg.modules.categories.entity.BlogCategories;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @Description: blog_categories
 * @Author: jeecg-boot
 * @Date:   2025-06-30
 * @Version: V1.0
 */
public interface BlogCategoriesMapper extends BaseMapper<BlogCategories> {

    /**
     * 更新分类的文章数量
     * @param categoryId 分类ID
     * @param increment 增量
     */
    @Update("UPDATE blog_categories SET article_count = COALESCE(article_count, 0) + #{increment} WHERE id = #{categoryId}")
    void updateArticleCount(@Param("categoryId") String categoryId, @Param("increment") int increment);

    /**
     * 设置分类的文章数量
     * @param categoryId 分类ID
     * @param count 文章数量
     */
    @Update("UPDATE blog_categories SET article_count = #{count} WHERE id = #{categoryId}")
    void setArticleCount(@Param("categoryId") String categoryId, @Param("count") int count);

    /**
     * 获取所有分类ID
     * @return 分类ID列表
     */
    @Select("SELECT id FROM blog_categories")
    List<String> selectAllCategoryIds();
}
